# 引用os模块
import os
# 计算目录大小的函数
def dir_size(dir):
    #初始化一个变量sum来接收目录的总大小
    sum = 0
    # 判断该路径是否是文件
    if os.path.isfile(dir):
        # 如果是文件，将文件大小给sum
        sum = sum + os.path.getsize(dir)
    # 判断是否是目录
    if os.path.isdir(dir):
        # 获取目录的列表
        dlist = os.listdir(dir)
        # 遍历该目录
        for f in dlist:
            # 为遍历的文件添加目录路径
            file = os.path.join(dir,f)
            # 再次判断该路径是否为文件
            if os.path.isfile(file):
                # 为文件的话，将文件大小加到总值中
                sum = sum + os.path.getsize(file)
            # 判断该路径是否为目录
            elif os.path.isdir(file):
                # 为目录的话，递归调用
                sum = sum + dir_size(file)
    # 返回总值
    return sum

# 调用输出
def show():
    # 接收输入的路径
    i_dir = input('请输入指定文件夹: ')
    # 判断输入的路径是否为空
    if len(i_dir) > 0:
        print('该目录的大小为：',dir_size(i_dir))
    else:
        print('请输入正确的地址')
        show()

show()
